package br.webchild.client;


import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.event.dom.client.KeyUpHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.PasswordTextBox;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.sun.corba.se.impl.encoding.CodeSetConversion.BTCConverter;

public class Webchild implements EntryPoint {

    public void onModuleLoad() {
	final Button bAcessar = new Button("Acessar");
	final TextBox tbUsuario = new TextBox();
	final PasswordTextBox tbSenha = new PasswordTextBox();
//	tbUsuario.setText("teste");
//	tbSenha.setText("teste");
	// ADICIONA ESTILO AS WIDGETS
	bAcessar.addStyleName("sendButton");
	RootPanel.get("usuarioContainer").add(tbUsuario);
	RootPanel.get("botaoContainer").add(bAcessar);
	RootPanel.get("senhaContainer").add(tbSenha);
	tbUsuario.setFocus(true);
	class Dispara implements ClickHandler, KeyUpHandler{

		AsyncCallback<Boolean> callback = new AsyncCallback<Boolean>() {

			@Override
			public void onFailure(Throwable caught) {
				Window.alert("ERRO NO SERVIDOR...");
			}

			@Override
			public void onSuccess(Boolean result) {
				if (result.booleanValue()) {
					//new CopyOfWebchild().onModuleLoad();
					new Principal().show();
					tbSenha.setText("");
					
//					tbUsuario.setText("");
//					tbUsuario.setFocus(true);
//					tbUsuario.setEnabled(false);
//					tbSenha.setEnabled(false);
//					bAcessar.setEnabled(false);
				} else {
					Window.alert("Usuario ou senha incorretos");
					tbUsuario.setFocus(true);
					tbSenha.setText("");
				}			
			}
		};
    
		private final WebchildServicoAsync webchildServico = GWT.create(WebchildServico.class);
		@Override
		public void onClick(ClickEvent event) {
			webchildServico.validaUsuario(tbUsuario.getText(), tbSenha.getText(), callback);
		}
		
	    public void onKeyUp(KeyUpEvent event) {
	    	if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
	    		webchildServico.validaUsuario(tbUsuario.getText(), tbSenha.getText(), callback);
	        }
	    }
	}
	
	// ADICIONA A CLASSE AO EVENTO
	Dispara dispara = new Dispara();
	bAcessar.addClickHandler(dispara);
//	tbSenha.addKeyUpHandler(dispara);
		// nameField.addKeyUpHandler(KeyUpHandler);
    }	
}
